using System;
using System.Collections.Generic;
using System.Data;
using MySql.Data.MySqlClient;
using NEX_Datos;
using System.Text;

namespace NEXServicio
{
    public class ServicioPais: ServicioPadre
    {
        #region Contantes

        public const String DataTableName = "Pais";

        #endregion

        #region Metodos publicos
        public static DataSet Obtener(int idPais, string codigo)
        {
            DataSet ds = new DataSet();
            ds.Locale = System.Globalization.CultureInfo.CurrentCulture;
            using (MySqlCommand cmd = UtilidadAD.CreateSqlCommand())
            {
                cmd.CommandText = "PaisTraer";

                SetearConNulo("p_idPais", cmd, MySqlDbType.Int32, idPais);
                SeteaValorNulo("p_activo", cmd, MySqlDbType.Bit);
                SetearConNulo("p_codigo", cmd, MySqlDbType.VarChar,codigo );
                SeteaValorNulo("p_nombre", cmd, MySqlDbType.VarChar);
                using (MySqlDataAdapter da = new MySqlDataAdapter(cmd))
                {
                    da.Fill(ds);
                }
            }
            ds.Tables[0].TableName = ServicioPais.DataTableName;

            return ds;
        }
        
        public static DataSet Listar()
        {
            return ServicioPais.ListarPrivado(null, "", "");
        }

        public static DataSet Listar(Boolean activo)
        {
            return ServicioPais.ListarPrivado(activo, "", "");
        }
        public static DataSet Listar(string nombre)
        {
            return ServicioPais.ListarPrivado(null, "", nombre);
        }
        #endregion

        #region Metodos privados
        private static DataSet ListarPrivado(Object activo, string codigo, string nombre)
        {
            DataSet ds = new DataSet();
            ds.Locale = System.Globalization.CultureInfo.CurrentCulture;
            using (MySqlCommand cmd = UtilidadAD.CreateSqlCommand())
            {
                cmd.CommandText = "PaisTraer";

                SeteaValorNulo("p_idPais", cmd, MySqlDbType.Int32);
                SetearConNulo("p_activo", cmd, MySqlDbType.Bit, activo);
                SetearConNulo("p_codigo", cmd, MySqlDbType.VarChar, codigo);
                SetearConNulo("p_nombre", cmd, MySqlDbType.VarChar, nombre);

                using (MySqlDataAdapter da = new MySqlDataAdapter(cmd))
                {
                    da.Fill(ds);
                }
            }
            ds.Tables[0].TableName = ServicioPais.DataTableName;
            return ds;
        }

        #endregion

    }
}
